Information systems, from small locally built databases to full enterprise systems, have produced large gains in productivity and transformed work practices. Evidence of their influence can be seen in the fact that 70% of Fortune 1000 businesses currently employ enterprise systems. These systems organize, store, and provide access to data via reports, allowing workers to gather effective information, i.e., the information needed to take action in a particular situation, in response to incoming requests. User-centric design methods, such as “contextual design,” have played a role in increasing the effectiveness of information systems by improving the understanding of workers' needs for information. However, today's workers often find themselves spending time gathering effective information from several reports and several sources in order to address a particular task. The disconnection between the published reports and the informational needs of a particular situation diminishes the responsiveness of a worker, and, distributed across many workers, this problem impacts the responsiveness of the organization as a whole.
This limitation of responsiveness arises from the disconnection between the immediate and dynamic informational needs of workers addressing a particular situation and the static model of the systems that have been designed to support the work. Four reasons have been identified as causing this disconnection.                Design model: During the design phase of any information system, the designers can never accurately model every task that every worker performs. The design team will always miss tasks, variations, and exceptions that do not arise during the course of their investigation.        Optimization of core: When translating workers' needs to the system design, designers optimize for the core and critical tasks workers perform. This strategy works to optimize much of the work, but often edge tasks become time consuming. Most organizations have many edge tasks.        Changing needs: In general, the information needed to complete a task changes much more rapidly than the underlying information systems. For example, financial reporting laws change the information needed in annual reports, and changes to the law take place more often than the accounting software in companies gets completely redesigned.        New information: Over time new information sources, particularly external sources available from the Internet, become available. This access to new information often changes the requirements needed to complete a task or changes the strategy a worker takes to complete a task.        
Instead of information systems adapting to the individual and changing needs of workers, workers adapt their work practice to the capabilities and limitations of the information systems. Workers develop a practice-based expertise in acquiring the information that they need. Workers also construct their own information tools to work around the weaknesses of the information system. These tools include local information caches, such as a list of frequently used account numbers taped to the wall or desk; however, these shortcuts suffer from being out of sync with the underlying systems. Organizations can choose to re-engineer their internal systems to repair the disconnection between the system model and worker needs; however, this is expensive, time consuming, and still results in a static system. Organizations can also employ engineers to develop customized interfaces for specific tasks, but this is too expensive to address more than high-volume tasks and also results in a system that cannot adapt to changing needs.
Researchers have recognized that workers repeatedly perform the same task when interacting with a computer and have investigated how workers can build their own tools. End-user programming and programming-by-demonstration based systems assist workers in building such tools. The challenge is to accurately capture and automate specific activities without placing undue demands on the user to learn complex programming. In practice, systems with full programming capacities are often too complex while the ability to record simple macros lacks the fullness of expression that the work requires.